NOTE

删除排序链表中的重复元素 II

删除排序链表中的重复元素 II的 LeetCode 解题笔记。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

2. 思路

对比删除排序链表中的重复元素.md多了个ifelse判断

3. 实现

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteDuplicates(head *ListNode) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }
    dummyHead := &ListNode{}
    d := dummyHead
    current := head
    for current != nil {
        next := current.Next
        current.Next = nil

        if next != nil && current.Val == next.Val {
            for next != nil && current.Val == next.Val {
                next = next.Next
            }
        } else {
            d.Next = current
            d = d.Next
        }
        
        current = next
    }
    return dummyHead.Next
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看